home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / m17n / ko-romaja.mim < prev    next >
Text File  |  2009-04-29  |  10KB  |  295 lines

  1. ;; ko-romaja.mim -- Input method for Korean Hangul with Romaja keys.
  2. ;; Copyright (C) 2004, 2005
  3. ;;   National Institute of Advanced Industrial Science and Technology (AIST)
  4. ;;   Registration Number H15PRO112
  5.  
  6. ;; This file is part of the m17n database; a sub-part of the m17n
  7. ;; library.
  8.  
  9. ;; The m17n library is free software; you can redistribute it and/or
  10. ;; modify it under the terms of the GNU Lesser General Public License
  11. ;; as published by the Free Software Foundation; either version 2.1 of
  12. ;; the License, or (at your option) any later version.
  13.  
  14. ;; The m17n library is distributed in the hope that it will be useful,
  15. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. ;; Lesser General Public License for more details.
  18.  
  19. ;; You should have received a copy of the GNU Lesser General Public
  20. ;; License along with the m17n library; if not, write to the Free
  21. ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  22. ;; Boston, MA 02110-1301, USA.
  23.  
  24. ;;; Input method for Korean Hangul using Romaja keys.  The
  25. ;;; roman-transliteration rules follows that of IIIMF shown in this
  26. ;;; page: http://www3.sympatico.ca/d.moser/hangul.html
  27.  
  28. (input-method ko romaja)
  29.  
  30. (description
  31.  "Hangul input method with romaja keys.
  32. The roman-transliteration rules follows that of IIIMF shown in
  33. the page <http://www3.sympatico.ca/d.moser/hangul.html>.
  34.  
  35. Common to CHOSEONG and JONGSEONG:
  36.   πä▒(g) πä▓(gg,kk,qq,c) πä┤(n) πä╖(d) πä╣(l) πä╣(r) πàü(m) πàé(b,v) πàà(s)
  37.   πàå(ss) πàç(ng) πàç(x) πàê(j) πàè(ch) πàï(k,q) πàî(t) πàì(p,f) πàÄ(h)
  38.  
  39. CHOSEONG:
  40.   πä╕(dd,tt) πàâ(bb,vv) πàë(jj)
  41.  
  42. JONGSEONG:
  43.   πä│(gs) πä╡(nj) πä╢(nh) πä║(lg) πä╗(lm) πä╝(lb) πä╜(ls) πä╛(lt) πä┐(lp) πàÇ(lh) πàä(bs)
  44.  
  45. JUNGSEONG:
  46.   πàÅ(a) πàÉ(ai,ae) πàæ (ya,ia) πàÆ(yai,yae,iae) πàô(eo) πàö(e,eoi) πàò(yeo,ieo)
  47.   πàû(ye,ie,yeoi) πàù(o) πàÿ(oa,wa,ua) πàÖ(oai,wae,uae,oae) πàÜ(oi,woe,uoe,oe)
  48.   πà¢(yo,io) πà£(u,w,oo) πà¥(ueo,wo,uo) πà₧(ue,we) πàƒ(wi) πàá(yu,iu) πàí(eu)
  49.   πàó(eui,ui) πàú(i,y,ee)
  50.  
  51. Special:
  52.   Type uppercase letter to specify CHOSEONG explicitly.
  53.   Type \"I\" to toggle the composed-syllable mode and isolated-jamo mode.
  54.   Type \">>\" to fullwidth ASCII letter mode, \"<<\" to shift out the mode.
  55.   Type \"Z\" and a key to input fullwidth version of the key.
  56. ")
  57.  
  58. (title "δí£δºê∞₧É")
  59.  
  60. (macro
  61.  (compose
  62.   ;; Convert Jamo sequence LVT to a precomposed character.
  63.   ;; See the Unicode Standard Version 3.0, Section 3.11.
  64.   (> L 0
  65.      ((set LIndex L) (sub LIndex 0x1100)
  66.       (set VIndex V) (sub VIndex 0x1161)
  67.       (set TIndex T) (sub TIndex 0x11A7)
  68.       ;; S = (LIndex * VCount + Vindex) * TCount + TIndex + SBase
  69.       (set S LIndex)
  70.       (mul S 21) ;; VCount
  71.       (add S VIndex)
  72.       (mul S 28) ;; TCount
  73.       (add S TIndex)
  74.       (add S 0xAC00) ;; SBase
  75.       (delete @<)
  76.       (insert S))))
  77.  
  78.  ;; If L is not negative, convert Jame sequence LV to a precomposed
  79.  ;; character while assuming T is 0x11A7.  If L is 0 (i.e. missing),
  80.  ;; set L to 0x110B.
  81.  (compose-vowel
  82.   (< L 0
  83.      ()
  84.      ((= L 0 ((set L 0x110B)))
  85.       (set T1 T)
  86.       (set T 0x11A7)
  87.       (compose)
  88.       (set T T1)))))
  89.  
  90. (map
  91.  ;; This map is used only in init state, which means typing these
  92.  ;; uppercase letters in any other states causes shifting to init
  93.  ;; state, and they are re-handled in init state.
  94.  (uppercase
  95.   ("B" (pushback "b")) ("C" (pushback "c")) ("D" (pushback "d"))
  96.   ("F" (pushback "f")) ("G" (pushback "g")) ("H" (pushback "h"))
  97.   ("J" (pushback "j")) ("K" (pushback "k")) ("L" (pushback "l"))
  98.   ("M" (pushback "m")) ("N" (pushback "n")) ("P" (pushback "p"))
  99.   ("Q" (pushback "q")) ("R" (pushback "r")) ("S" (pushback "s"))
  100.   ("T" (pushback "t")) ("V" (pushback "v")) ("X" (pushback "x")))
  101.  
  102.  ;; Keys common to CHOSEONG and JONGSEONG.  Set L1 to CHOSEONG, T to
  103.  ;; JONGSEONG, insert a Compatibility Jamo.  When this map is used in
  104.  ;; init state, L is still 0, thus compose macro does nothing.
  105.  ;; Otherwise, L is already set to a CHOSEONG, thus compose macro
  106.  ;; composes LVT into a syllable.
  107.  (X
  108.   ("g"  (set L1 0x1100) (set T 0x11A8) ?πä▒ (compose))
  109.   ("gg" (set L1 0x1101) (set T 0x11A9) ?πä▓ (compose))
  110.   ("kk" (set L1 0x1101) (set T 0x11A9) ?πä▓ (compose))
  111.   ("qq" (set L1 0x1101) (set T 0x11A9) ?πä▓ (compose))
  112.   ("c"  (set L1 0x1101) (set T 0x11A9) ?πä▓ (compose))
  113.   ("n"  (set L1 0x1102) (set T 0x11AB) ?πä┤ (compose))
  114.   ("d"  (set L1 0x1103) (set T 0x11AE) ?πä╖ (compose))
  115.   ("l"  (set L1 0x1105) (set T 0x11AF) ?πä╣ (compose))
  116.   ("r"  (set L1 0x1105) (set T 0x11AF) ?πä╣ (compose))
  117.   ("m"  (set L1 0x1106) (set T 0x11B7) ?πàü (compose))
  118.   ("b"  (set L1 0x1107) (set T 0x11B8) ?πàé (compose))
  119.   ("v"  (set L1 0x1107) (set T 0x11B8) ?πàé (compose))
  120.   ("s"  (set L1 0x1109) (set T 0x11BA) ?πàà (compose))
  121.   ("ss" (set L1 0x110A) (set T 0x11BB) ?πàå (compose))
  122.   ("ng" (set L1 0x110B) (set T 0x11BC) ?πàç (compose))
  123.   ("x"  (set L1 0x110B) (set T 0x11BC) ?πàç (compose))
  124.   ("j"  (set L1 0x110C) (set T 0x11BD) ?πàê (compose))
  125.   ("ch" (set L1 0x110E) (set T 0x11BE) ?πàè (compose))
  126.   ("k"  (set L1 0x110F) (set T 0x11BF) ?πàï (compose))
  127.   ("q"  (set L1 0x110F) (set T 0x11BF) ?πàï (compose))
  128.   ("t"  (set L1 0x1110) (set T 0x11C0) ?πàî (compose))
  129.   ("p"  (set L1 0x1111) (set T 0x11C1) ?πàì (compose))
  130.   ("f"  (set L1 0x1111) (set T 0x11C1) ?πàì (compose))
  131.   ("h"  (set L1 0x1112) (set T 0x11C2) ?πàÄ (compose)))
  132.  
  133.  ;; Keys only for CHOSEONG.
  134.  ;; Set L to CHOSEONG, insert a Compatibility Jamo.
  135.  (L
  136.   ("dd" (set L 0x1104) ?πä╕)
  137.   ("tt" (set L 0x1104) ?πä╕)
  138.   ("bb" (set L 0x1108) ?πàâ)
  139.   ("vv" (set L 0x1108) ?πàâ)
  140.   ("jj" (set L 0x110D) ?πàë))
  141.  
  142.  ;; Keys only for JONGSEONG.
  143.  ;; Set T to JONGSEONG, insert a Compatibility Jamo.
  144.  (T
  145.   ("gs" (set T 0x11AA) ?πä│ (compose))
  146.   ("nj" (set T 0x11AC) ?πä╡ (compose))
  147.   ("nh" (set T 0x11AD) ?πä╢ (compose))
  148.   ("lg" (set T 0x11B0) ?πä║ (compose))
  149.   ("lm" (set T 0x11B1) ?πä╗ (compose))
  150.   ("lb" (set T 0x11B2) ?πä╝ (compose))
  151.   ("ls" (set T 0x11B3) ?πä╜ (compose))
  152.   ("lt" (set T 0x11B4) ?πä╛ (compose))
  153.   ("lp" (set T 0x11B5) ?πä┐ (compose))
  154.   ("lh" (set T 0x11B6) ?πàÇ (compose))
  155.   ("bs" (set T 0x11B9) ?πàä (compose)))
  156.  
  157.  ;; Keys only for JUNGSEONG.
  158.  ;; Set V to JUNGSEONG, insert a Compatibility Jamo.
  159.  (V
  160.   ("a"   (set V 0x1161) ?πàÅ (compose-vowel))
  161.   ("ai"  (set V 0x1162) ?πàÉ (compose-vowel))
  162.   ("ae"  (set V 0x1162) ?πàÉ (compose-vowel))
  163.   ("ya"  (set V 0x1163) ?πàæ (compose-vowel))
  164.   ("ia"  (set V 0x1163) ?πàæ (compose-vowel))
  165.   ("yai" (set V 0x1164) ?πàÆ (compose-vowel))
  166.   ("yae" (set V 0x1164) ?πàÆ (compose-vowel))
  167.   ("iae" (set V 0x1164) ?πàÆ (compose-vowel))
  168.   ("eo"  (set V 0x1165) ?πàô (compose-vowel))
  169.   ("e"   (set V 0x1166) ?πàö (compose-vowel))
  170.   ("eoi" (set V 0x1166) ?πàö (compose-vowel))
  171.   ("yeo" (set V 0x1167) ?πàò (compose-vowel))
  172.   ("ieo" (set V 0x1167) ?πàò (compose-vowel))
  173.   ("ye"  (set V 0x1168) ?πàû (compose-vowel))
  174.   ("ie"  (set V 0x1168) ?πàû (compose-vowel))
  175.   ("yeoi"(set V 0x1168) ?πàû (compose-vowel))
  176.   ("o"   (set V 0x1169) ?πàù (compose-vowel))
  177.   ("oa"  (set V 0x116A) ?πàÿ (compose-vowel))
  178.   ("wa"  (set V 0x116A) ?πàÿ (compose-vowel))
  179.   ("ua"  (set V 0x116A) ?πàÿ (compose-vowel))
  180.   ("oai" (set V 0x116B) ?πàÖ (compose-vowel))
  181.   ("wae" (set V 0x116B) ?πàÖ (compose-vowel))
  182.   ("uae" (set V 0x116B) ?πàÖ (compose-vowel))
  183.   ("oae" (set V 0x116B) ?πàÖ (compose-vowel))
  184.   ("oi"  (set V 0x116C) ?πàÜ (compose-vowel))
  185.   ("woe" (set V 0x116C) ?πàÜ (compose-vowel))
  186.   ("uoe" (set V 0x116C) ?πàÜ (compose-vowel))
  187.   ("oe"  (set V 0x116C) ?πàÜ (compose-vowel))
  188.   ("yo"  (set V 0x116D) ?πࢠ(compose-vowel))
  189.   ("io"  (set V 0x116D) ?πࢠ(compose-vowel))
  190.   ("u"   (set V 0x116E) ?π࣠(compose-vowel))
  191.   ("w"   (set V 0x116E) ?π࣠(compose-vowel))
  192.   ("oo"  (set V 0x116E) ?π࣠(compose-vowel))
  193.   ("ueo" (set V 0x116F) ?πॠ(compose-vowel))
  194.   ("wo"  (set V 0x116F) ?πॠ(compose-vowel))
  195.   ("uo"  (set V 0x116F) ?πॠ(compose-vowel))
  196.   ("ue"  (set V 0x1170) ?πà₧ (compose-vowel))
  197.   ("we"  (set V 0x1170) ?πà₧ (compose-vowel))
  198.   ("wi"  (set V 0x1171) ?πàƒ (compose-vowel))
  199.   ("yu"  (set V 0x1172) ?πàá (compose-vowel))
  200.   ("iu"  (set V 0x1172) ?πàá (compose-vowel))
  201.   ("eu"  (set V 0x1173) ?πàí (compose-vowel))
  202.   ("eui" (set V 0x1174) ?πàó (compose-vowel))
  203.   ("ui"  (set V 0x1174) ?πàó (compose-vowel))
  204.   ("i"   (set V 0x1175) ?πàú (compose-vowel))
  205.   ("y"   (set V 0x1175) ?πàú (compose-vowel))
  206.   ("ee"  (set V 0x1175) ?πàú (compose-vowel)))
  207.  
  208.  ;; Keys starting V.
  209.  (V-head
  210.   ("a") ("y") ("e") ("o") ("w") ("u") ("i"))
  211.  
  212.  ;; Input fullwidth punction characters by typing a punction twice.
  213.  (punctuation
  214.   ("," ?,)
  215.   (",," ?πÇü)
  216.   ("." ?.)
  217.   (".." ?πÇé)
  218.   ("?" ??)
  219.   ("??" ?∩╝ƒ)
  220.   ("!" ?!)
  221.   ("!!" ?∩╝ü))
  222.  
  223.  (backspace
  224.   ((BackSpace) (> @@ 1 ((undo)) ((unhandle)))))
  225.  
  226.  ;; Toggle normal syllable mode and isolated jamo mode.
  227.  (toggle-mode
  228.   ("I" (= ISOLATED 0 ((set ISOLATED 1)) ((set ISOLATED 0)))))
  229.  
  230.  (commit-preedit
  231.   (";")
  232.   ((S-\ ))))
  233.  
  234. (include (t nil cjk-util) map)
  235.  
  236. (state
  237.  (init
  238.   "δí£δºê∞₧É"
  239.   ;; This is to suppress compose action.
  240.   (t (set L 0))
  241.   ;; Uppercase keys are translated to the corresponding lowercase keys.
  242.   (uppercase)
  243.   (X (set L L1) (shift after-L))
  244.   (L (shift after-L))
  245.   (V (shift after-LV))
  246.   (T)
  247.   (backspace)
  248.   (punctuation)
  249.   (enter-fullwidth-mode (shift fullwidth-mode))
  250.   (enter-single-fullwidth-mode (shift single-fullwidth-mode))
  251.   (toggle-mode (shift isolated-jamo-mode)))
  252.  
  253.  (after-L
  254.   (V (shift after-LV))
  255.   (commit-preedit (shift init))
  256.   (backspace))
  257.  (after-LV
  258.   (X (shift after-LVX))
  259.   (T (shift init))
  260.   (commit-preedit (shift init))
  261.   (backspace))
  262.  (after-LVX
  263.   (V-head (delete @<) (pushback 0) (shift fix-LV-redo-L))
  264.   (commit-preedit (shift init))
  265.   (backspace))
  266.  
  267.  (fix-LV-redo-L
  268.   (t (set L 0))
  269.   (X (set L L1) (shift fix-LV-redo-V))
  270.   (L (shift fix-LV-redo-V))
  271.   (V (set L 0x110B) (set T 0x11A7) (compose) (shift init)))
  272.  (fix-LV-redo-V
  273.   (V (set T 0x11A7) (compose) (shift init)))
  274.  
  275.  (isolated-jamo-mode
  276.   "∞₧É모"
  277.   ;; Suppress both compose and compose-vowel action.
  278.   (t (set L -1))
  279.   (X (commit))
  280.   (L (set L -1) (commit))
  281.   (T (commit))
  282.   (V (commit))
  283.   (commit-preedit (commit))
  284.   (enter-fullwidth-mode (shift fullwidth-mode))
  285.   (enter-single-fullwidth-mode (shift single-fullwidth-mode))
  286.   (toggle-mode (shift init))
  287.   (nil (unhandle))))
  288.  
  289. (include (t nil cjk-util) state)
  290.  
  291. ;; Local Variables:
  292. ;; coding: utf-8
  293. ;; mode: lisp
  294. ;; End:
  295.